package com.hex.ds.hdtp.core.app.script.common.service;

import com.hex.ds.hdtp.core.app.script.common.dto.request.ScriptTableConsanguinityRequestDto;
import com.hex.ds.hdtp.core.app.script.common.dto.response.ScriptTableConsanguinityResponseDto;

import java.util.List;

/**
 * @Package: com.hex.ds.hdtp.core.app.script.test.service
 * @ClassName IScriptTableConsanguinityService
 * @Description: 脚本表血缘-业务接口
 * @Author: wz.li
 * @Date 2023/8/3 11:16
 * @Version v2.0.2
 **/
public interface IScriptTableConsanguinityService {

    /*
     * @Method: queryList <br>
     * @Param: [scriptListPkId, dataFrom] <br>
     * @Return: java.util.List<com.hex.ds.hdtp.core.app.script.common.dto.response.ScriptTableConsanguinityResponseDto> <br>
     * @Description：根据脚本清单主键和数据来源查询脚本对应的血缘<br>
     * @Author： wz.li<br>
     * @Date： 2023/8/4 10:35 <br>
     * @Version： V2.0.2<br>
     */
    List<ScriptTableConsanguinityResponseDto> queryList(String scriptListPkId, String dataFrom);

    /**
     * 根据任务主键查询对应的表血缘
     *
     * @param taskPkId
     * @return
     */
    List<ScriptTableConsanguinityResponseDto> queryListByTaskId(String taskPkId);

    /*
     * @Method: add <br>
     * @Param: [scriptTableConsanguinityRequestDto] <br>
     * @Return: void <br>
     * @Description：新增<br>
     * @Author： wz.li<br>
     * @Date： 2023/8/4 10:35 <br>
     * @Version： V2.0.2<br>
     */
    void add(final ScriptTableConsanguinityRequestDto scriptTableConsanguinityRequestDto);

    /*
     * @Method: removeByScriptListPkId <br>
     * @Param: [scriptListPkId] <br>
     * @Return: void <br>
     * @Description：根据测试清单主键和来源删除对应的血缘<br>
     * @Author： wz.li<br>
     * @Date： 2023/8/4 11:56 <br>
     * @Version： V2.0.2<br>
     */
    void removeByScriptListPkId(String scriptListPkId, String dataFrom);

    /*
     * @Method: removeByTableName <br>
     * @Param: [scriptTableConsanguinityRequestDto] <br>
     * @Return: void <br>
     * @Description：根据表名称删除<br>
     * @Author： wz.li<br>
     * @Date： 2023/8/8 11:40 <br>
     * @Version： V2.0.2<br>
     */
    void removeByTableName(ScriptTableConsanguinityRequestDto scriptTableConsanguinityRequestDto);
}
